package com.jomoo.account.dao;

import java.util.Date;
import java.util.List;

import com.jomoo.common.pojo.JomooAccount;

/**
 * 账单Dao接口
 * @author 郝思聪
 *
 */
public interface AccountdDao 
{

	/**
	 * 持久化任意对象
	 * @param obj
	 * @return
	 * @throws Exception
	 */
	Integer saveAllObj(Object obj) throws Exception;
	
	/**
	 * 账单信息查询
	 * @param iType
	 * @param iState
	 * @param fstartNum
	 * @param fendNum
	 * @param strBeginTime
	 * @param strEndTime
	 * @return
	 * @throws Exception
	 */
	List<JomooAccount> getAccounts(Integer iType, Integer iState, Float fstartNum, 
								Float fendNum, Date strBeginTime, Date strEndTime) throws Exception;
	
	/**
	 * 账单信息导出查询
	 * 
	 * @param iType
	 * @param iState
	 * @param fstartNum
	 * @param fendNum
	 * @param strBeginTime
	 * @param strEndTime
	 * @return
	 * @throws Exception
	 */
	List<JomooAccount> getAccountExcel(Integer iType, Integer iState, Float fstartNum,
									Float fendNum, Date strBeginTime, Date strEndTime)
																					throws Exception;
	
	/**
	 * 作废账目
	 * @param iId
	 * @return
	 * @throws Exception
	 */
	Integer deleteAccount(Integer iId) throws Exception;
	
	/**
	 * 
	* @Title: getMonthAccountView 
	* @Description: 获取当月产品各自安装数量用于图表显示 
	* @param @param startDate
	* @param @param endDate
	* @param @return
	* @param @throws Exception    设定文件 
	* @return List    返回类型 
	* @throws
	 */
	@SuppressWarnings("rawtypes")
	List getMonthAccountView(Date startDate, Date endDate) throws Exception;
	
	/**
	 * 
	* @Title: getAccountsView 
	* @Description: 按金额数目生成图表
	* @param @param iCheck
	* @param @param iCustomer
	* @param @param iSetupType
	* @param @param iProduct
	* @param @param iSpec
	* @param @param iSetupState
	* @param @param strBeginTime
	* @param @param strEndTime
	* @param @return
	* @param @throws Exception    设定文件 
	* @return List    返回类型 
	* @throws
	 */
	@SuppressWarnings("rawtypes")
	List getAccountsView(Integer iCheck, Integer iCustomer, Integer iSetupType,
									Integer iProduct, Integer iSpec, Integer iSetupState,
															String strBeginTime, Date strEndTime) throws Exception;
}
